#ifndef GAMEENGINE_CORE_MEMORY_ALLOCATOR_DEFAULT_H
#define GAMEENGINE_CORE_MEMORY_ALLOCATOR_DEFAULT_H

#include <GameEngine/Core/core_settings.h>
#include <GameEngine/Core/Resource/resource.h>


#ifdef GAMEENGINE_NAMESPACES
namespace GameEngine {
#endif


//========================================================


//! Allocates data
/*!
 *  An allocator dynamically allocates memory. This one operates using the new function.
 */
template <class T>
class AllocatorDefault {

public:
	static T* allocate(unsigned int nb_elements);
	static T* copy(const T& rhs);
	static void desallocate(const T* item, unsigned int nb_elements);
};


//========================================================

#ifdef GAMEENGINE_NAMESPACES
} // namespace GameEngine
#endif

#include <GameEngine/Core/Memory/allocator_default.hpp>

#endif
